package Collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

//集合的排序---point
public class SortPoint {
    public static void main(String[] args) {
        List<priot> list = new ArrayList<>();
        list.add(new priot(2,5));
        list.add(new priot(55,32));
        list.add(new priot(23,2));
        list.add(new priot(100,1));
        list.add(new priot(100,20));
        System.out.println("list的原始数据"+list);
//        Collections.sort(list, new Comparator<priot>() {
//            @Override
//            public int compare(priot o1, priot o2) {
//                int len1 = o1.getX()*o1.getX()+o1.getY()*o1.getY();
//                int len2 = o2.getX()*o2.getX()+o2.getY()*o2.getY();
//                return len1-len2;//升序
//
//              /*  return len2-len1;//降序
//                return o2.getY()-o1.getY();//按y坐标降序
//                return o1.getX()-o2.getX();*///按x坐标升序
//            }
//        });
        //jdk1.8后才有
//        list.sort(new Comparator<priot>() {
//            @Override
//            public int compare(priot o1, priot o2) {
//                int len1 = o1.getX()*o1.getX()+o1.getY()*o1.getY();
//                int len2 = o2.getX()*o2.getX()+o2.getY()*o2.getY();
//                return len1-len2;
//            }
//        });
        list.sort(((o1, o2) -> {
            int len1 = o1.getX()*o1.getX()+o1.getY()*o1.getY();
            int len2 = o2.getX()*o2.getX()+o2.getY()*o2.getY();
            return len1-len2;
        }));
//        Collections.sort(list,(o1,o2) -> ((o1.getX()*o1.getX()+o1.getY()*o1.getY())- o2.getX()* o2.getX()+ o2.getY()* o2.getY()));
        System.out.println("排序后："+list);
    }
}
